//定义对象
var loginRecord = {
		/**
	     * 初始化
	     * */
		init : function(){
			  this.sliderH(); 
		      /** 初始化日期 * */
		      var date = new Date();
		      $("#inputStartDate").val(global.getToday(date));
		      $("#inputEndDate").val(global.getTime(date));
			  this.winH ="";
			  this.sliderH = "";
			  this.mapH ="";
			  this.initWorkUnitList();
			  this.initTable();
			  this.bindQuery();
		},
		 /**
	     * 计算各div高度的高度
	     * */
    sliderH : function(){
    	var _this=this;
    	_this.winH = $(window).height();
    	_this.sliderH = _this.winH - 58;
    	_this.mapH = _this.sliderH-50;
        $('#tableDiv').height(_this.mapH);
    },
    /**
     * 获取企业列表
     */
    initWorkUnitList: function () {
        $.ajax({
            type: 'post',
            url: appCtx + "/system/common/queryEnterprise.html?time="+ new Date().getTime(),
            cache: false,
            dataType: "JSON",
            success: function (data) {			
    			if(data){
    				
    				$('#selectWorkUnitList').html("<select class='query-select' id='selectWorkUnitListSql'></select>");				
    				var selectStr="";
    				selectStr+="<option value=''>全部企业</option>";
    				$.each(data,function(entryIndex,entry) {
    					selectStr+="<option value='"+entry.ID+"'>"+entry.text+"</option>";
    				});
    				
    				$('#selectWorkUnitListSql').html(selectStr);
    				
    				$("#selectWorkUnitListSql").select2();
    			}
            }
        });
    },

    /**
     * 初始化表格
     * */
    initTable:function(){
    	var startTime=$("#inputStartDate").val();
     	var endTime=$("#inputEndDate").val();
     	var end_str = (endTime).replace(/-/g,"/");// 一般得到的时间的格式都是：yyyy-MM-dd
													// hh24:mi:ss，所以我就用了这个做例子，是/的格式，就不用replace了。
    	var end_date = new Date(end_str);// 将字符串转化为时间
    	// 开始时间
    	var sta_str = (startTime).replace(/-/g,"/");  
    	var sta_date = new Date(sta_str); 
    	var num = (end_date-sta_date)/(1000*3600*24);// 求出两个时间的时间差，这个是天数
    	var days = parseInt(Math.ceil(num));// 转化为整天（小于零的话剧不用转了）
    	if(days>30){
    		global.ajaxLoading.pop("查询时间不能超过30天",false,2000);
    		return;
    	}
    	var queryResult = function () {	
			    /**
				 * 格式化时间
				 */
			  var getFormatTime = function (msg){
				   var outTime = "0";
				   if (null != msg && undefined != msg ) {
	  		  		var date = new Date(parseInt(msg)); 
		  		    var y = date.getFullYear();    
		  		    var m = date.getMonth() + 1;    
		  		    m = m < 10 ? ('0' + m) : m;    
		  		    var d = date.getDate();    
		  		    d = d < 10 ? ('0' + d) : d;    
		  		    var h = date.getHours();  
		  		    h = h < 10 ? ('0' + h) : h;  
		  		    var minute = date.getMinutes();  
		  		    var second = date.getSeconds();  
		  		    minute = minute < 10 ? ('0' + minute) : minute;    
		  		    second = second < 10 ? ('0' + second) : second;   
		  		    outTime = y + '-' + m + '-' + d+'  '+h+':'+minute+':'+second;
			  	  	}
			  	  return outTime;
			    };
			    /**
				 * 判断是否登录成功
				 */
			    var getConfirm = function (msg){
			  	  var out = "否" ;
			  	  if ( msg == 1  ) {
			  		  out = "是" ;
			  	  }
			  	  return out;
			    };
		    	$("#loginRecordList").flexigrid(
		    			{
	                dataType: 'json',
	                url: appCtx + "/log/loginRecord/getLoginRecordList.html?time="+ new Date().getTime(),
	                params: loginRecord.getparams(),
	                contentType: "application/json; charset=utf-8",
	                method: 'POST',
		            colModel : [{
		            	display : '登录名',
		                name : 'login_name',
		                width : 10,
		                sortable : false,
		                align : 'center',
		            },{
		                display : '用户名',
		                name : 'user_name',
		                width : 10,
		                sortable : false,
		                align : 'center',
		            },{
		                display : '角色',
		                name : 'role_name',
		                width : 10,
		                sortable : false,
		                align : 'center',
/*		            },{
		                display : '企业名称',
		                name : 'workUnitName',
		                width : 12,
		                sortable : false,
		                align : 'center',
		                showTitle : 'workUnitName',*/
		            },{
		                display : '登录IP',
		                name : 'loginIP',
		                width : 12,
		                sortable : false,
		                align : 'center', 
		            },{
		                display : '登录地点',
		                name : 'loginAddress',
		                width : 12,
		                sortable : false,
		                align : 'center',    
		            },{
		                display : '是否成功',
		                name : 'isSuccess',
		                width : 10,
		                sortable : false,
		                align : 'center', 
		                 paramcolnames:["isSuccess"],
		                handlefunction:getConfirm,
		                showTitle: "isSuccess"
		            },{
		                display : '登录时间',
		                name : 'loginTime',
		                width : 12,
		                sortable : false,
		                align : 'center',
		                paramcolnames: ["loginTime"],
		                handlefunction:getFormatTime,
		                showTitle: "loginTime"
		            }],
		        	resizable: false,
		            sortname: "loginTime",// 第一次加载数据时排序列
		            sortorder: "desc",// 第一次加载数据时排序类型
		            usepager: true,// 是否分页，默认为true。
		            showToggleBtn: false,
		            showTableToggleBtn: false,// 是否显示收起/打开按钮,默认不显示。
		            useRp: true,// 是否可以动态设置每页显示的结果数，默认为false。
		            rp: 20,// 每页记录数，默认为10
		            rpOptions: [10, 20, 50, 100, 200], // 每页结果数
		            checkbox: true,// 是否要多选框,默认为falses。
		            rowId: 'terminalId',// 多选框绑定行的id,只有checkbox :
		            // true时才有效。
		            singleSelect: true,
		            width : $('#tableDiv').width(),// 表格宽度
		            widthType: '%',
		            height :nav.whiceH[0] -125,
			            titDisplay: false,
			            onSuccess: function (data) {
			            	
			            },
			            onSelectRow: function (row) {
			
			            },
			            onSelectAllRow: function (data) {
			
			            }
			     });
   
	    	};
	    	
	    	 queryResult();
	   },
	   
	    /**
	     * 弹出导出选择页
	     */
	    exportSimCard: function () {
	        var options = $("#loginRecordList").getOptions();
	        var total = options.total;
	        if (total == 0) {
	            global.ajaxLoading.pop("无导出数据", false, 2000);
	            return;
	        }
	        var pages = options.pages;
	        //设置默认的开始结束页
	        $("#StartPageIndex").val(1);
	        $("#EndPageIndex").val(pages);
	        //显示导出窗口
	        $("#exportModal").modal('show');
	    },
	    /**
	     * 导出历史信息
	     */
	    exportComfirm: function () {
	        var me = this;
	        var options = $("#loginRecordList").getOptions();
	        //总记录数
	        var total = options.total;
	        //开始页数
	        var StartPage = $("#StartPageIndex").val();
	        //结束页数
	        var EndPage = $("#EndPageIndex").val();
	        var validate = true;
	        var msg = "";
	        if (!StartPage || StartPage == 0) {
	            msg += "【起始页不能为空或者0】";
	            validate = false;
	        }
	        if (!EndPage || EndPage == 0) {
	            msg += "【结束页不能为空或者0】";
	            validate = false;
	        }

	        if (StartPage && EndPage && EndPage < StartPage) {
	            msg += "【结束页要大于起始页】";
	            validate = false;
	        }
	        if (!validate) {
	            global.ajaxLoading.pop(msg, false, 2000);
	            return;
	        }
	        $('#exportModal').modal('hide');
	        global.ajaxLoading.pop("正在导出,请稍后.....", true, 2000);
	        //每页大小
	        var pagesize = options.rp;
	        //获取导出的参数
	        var exportParams = options.exportParams;
	        if ((EndPage - StartPage + 1) * pagesize > 60000 && total > 60000) {
	        	global.ajaxLoading.pop("最多只能导出60000条数据", true, 2000);
	            return
	        }
	        var columns = loginRecord.getColumn();
	        var header1 = JSON.stringify(columns);
	        var paramsMap = loginRecord.getparams();
	        var paramsJson = JSON.stringify(paramsMap);
	        var colModelList = new Array();//表头
	        colModelList.push(header1);
	        var colModel = $.toJSON(colModelList);
	        var paramsGrid = {
	            queryParams:paramsJson,
	           colModel: colModel,
	            title: "用户登录日志",
	            imgsrc: null,
	            StartPage: StartPage,
	            EndPage: EndPage,
	            PageSize: pagesize
	        };
	        post(appCtx + "log/loginRecord/exportLoginRecord.html", paramsGrid);
	    },
	    /**
	     * 获取表格字段头
	     */
	    getColumn: function() {
	    	return [{
            	display : '登录名',
                name : 'name',
                width : 100,
                sortable : false,
                align : 'center',
            },{
                display : '用户名',
                name : 'userName',
                width : 100,
                sortable : false,
                align : 'center',
            },{
                display : '角色',
                name : 'userRole',
                width : 100,
                sortable : false,
                align : 'center',
 /*           },{
                display : '企业名称',
                name : 'workUnitName',
                width : 120,
                sortable : false,
                align : 'center',*/
            },{
                display : '登录IP',
                name : 'loginIP',
                width : 120,
                sortable : false,
                align : 'center', 
            },{
                display : '登录地点',
                name : 'loginAddress',
                width : 150,
                sortable : false,
                align : 'center',    
            },{
                display : '是否成功',
                name : 'isSuccess',
                width : 100,
                sortable : false,
                align : 'center', 
            },{
                display : '登录时间',
                name : 'loginTime',
                width : 150,
                sortable : false,
                align : 'center',
            }];
	    },
	   /**
	    * 事件触发查询
	    */
	    bindQuery: function () {
	        $("a[name='exportSimCardBtn']").bind('click', function () {
	        	loginRecord.exportSimCard();
	        });
	        $("#confirmExport").click(function () {
	        	loginRecord.exportComfirm();
	        })
	        var _this = this;
	        $('#queryLoginRecord').click(function () {
	            // 历史报警查询不能超过三十天
	            var start = $("#inputStartDate").val().replace(/-/g, "/");
	            var end = $("#inputEndDate").val().replace(/-/g, "/");
	            if ((new Date(end).getTime() - new Date(start).getTime())
	                / (1000 * 60 * 60 * 24) > 30) {
	                global.ajaxLoading.pop("历史报警查询不能超过三十天", false, 1000);
	                return;
	            }
	            $("#loginRecordList").flexOptions({
	            	url: appCtx + "/log/loginRecord/getLoginRecordList.html?time="+ new Date().getTime(),
	                params: loginRecord.getparams(),//设置查询参数
	                newp: 1
	            }).flexReload();
	        });
	    },
	    
	/**
	 * 获取查询条件
	 */    
    getparams: function () {
        var userName = $("#userName").val();
//        var workUnitName = $("#selectWorkUnitListSql").val();
        var startTime = $("#inputStartDate").val();
        var endTime = $("#inputEndDate").val();
        var params = [{
            name: 'userName',
            value: userName
//        }, {
//            name: 'workUnitName',
//            value: workUnitName
        }, {
            name: 'startTime',
            value: startTime
        }, {
            name: 'endTime',
            value: endTime
        }];
        return params;
    }
}
/**
 * 初始化
 * */
loginRecord.init();
